Hollywood (langage)

Un article de Wikipédia, l'encyclopédie libre.

Hollywood
Image illustrative de l’article Hollywood (langage)

Date de première version Voir et modifier les données sur Wikidata
Développeur Andreas Falkenhahn
Dernière version 9.1 ()
Licence licence propriétaire
Site web www.hollywood-mal.com

Hollywood est un langage de programmation commercial développé par Andreas Falkenhahn (Airsoft Softwair) qui se concentre sur la création d'applications orientées multimédia. Hollywood est disponible pour AmigaOS, MorphOS, WarpOS, AROS, Windows, Linux, macOS, iOS et Android.

Hollywood possède un compilateur croisé (en anglais Cross Compiler) intégré qui peut enregistrer automatiquement des exécutables pour toutes les plateformes supportées par le logiciel. Les exécutables générés fonctionnent de façon indépendante du système et sans aucune dépendance externe. Ils peuvent donc être utilisées directement depuis une clé USB. Une extension logicielle permet aussi de compiler des projets en fichiers APK (Android Application Package)[2].

Le logiciel Hollywood Designer est un module supplémentaire pour Hollywood avec lequel il est possible d'utiliser Hollywood comme un logiciel de présentation.

Historique[modifier | modifier le code]

Hollywood a débuté sur ordinateur Amiga. Il est inspiré par des langages de programmation sur Amiga tels que AMOS, Blitz Basic, et Amiga E. L'auteur d'Hollywood Andreas Falkenhahn a commencé le développement de Hollywood au printemps 2002. La version 1.0 du logiciel est sortie en , mais seulement pour les systèmes Amiga basés sur 68000[3]. Un mois plus tard, une version native pour le système MorphOS a suivi[4]. Le support de WarpOS a été ajouté à partir de Hollywood qui est sorti au printemps 2004 en même temps que la première version de Hollywood Designer qui permet la création de présentations avec Hollywood. AmigaOS 4 est supporté depuis . À partir de la version 2.0 (sortie en ), Hollywood utilise le langage de programmation Lua en tant que sa machine virtuelle, mais avec plusieurs modifications dans sa syntaxe et ses fonctionnalités[5]. À partir de la version 3.0 (), Hollywood fonctionne sur deux systèmes d'exploitation non typés Amiga : Windows et macOS. Depuis la version 4.5 () Hollywood est disponible avec un environnement de développement intégré sur Windows. La version 4.7 sortie en est encore plus indépendante de la plateforme sur laquelle l'application tourne[6]. Depuis la version 4.8 () Hollywood peut aussi compiler les exécutables pour Linux. Hollywood 5.0 a été publié en et introduit le support pour la lecture vidéo et le support pour les formats vectorielles, tels que le SVG. Depuis la version 5.2 Hollywood prend également en charge le support de Android. Hollywood 6.0 a été publié en et introduit un support pour la programmation OpenGL via une extension dédiée ainsi qu'un support pour le Raspberry Pi. Hollywood 7.0 a été publié en et introduit le support des caractères Unicode et des architectures 64 bits.

Introduction[modifier | modifier le code]

Le but principal de Hollywood est la simplicité d'utilisation et aucune dépendance de la plateforme. Il a été développé principalement pour la création d'applications multimédia et de jeux. Le langage comprend environ 900 commandes dans les champs d'application : graphisme 2D, son, accès au système de fichiers, affichage de texte, animations, affichage de sprites, layers, effets de transition, manipulation d'images, enregistrement d'images et de fichiers vidéo… La programmation en Hollywood se fait via des scripts Hollywood (extension *.hws). Ces scripts sont compilés dynamiquement et peuvent être convertis en exécutables autonomes. Tous les programmes Hollywood fonctionnent dans une Sandbox qui permet de ne jamais planter le système[7].

Indépendance à la plateforme[modifier | modifier le code]

Hollywood a été conçu comme un langage de programmation totalement indépendant de la plateforme. De ce fait, les scripts ne peuvent pas appeler directement une fonction de l'API du système d'exploitation hôte et ils sont limités à la liste des commandes du langage. Même le rendu de texte est implémenté à travers un système de rendu de police complètement indépendant du système hôte. Cela permet à du texte en TrueType d'être visuellement identique sur toutes les plateformes. De plus, toutes les versions de Hollywood gèrent les formats de fichier spécifiques Amiga comme les images IFF ILBM, les sons IFF 8SVX, ou les fichiers IFF ANIM pour être entièrement compatibles avec les scripts écrits sur système Amiga[8].

Développement d'Interface Graphique[modifier | modifier le code]

Il y a plusieurs boîtes à outils de développement d'Interface Graphique pour Hollywood. RapaGUI est une extension graphique multi-plateforme pour Hollywood qui supporte Windows, macOS, Linux, et AmigaOS. RapaGUI utilise les contrôles graphiques natifs fournis par chacun des systèmes d'exploitation respectifs, ce qui donne aux applications RapaGUI une allure d'application native dans leur présentation et leur mode de fonctionnement. MUI Royale est une boîte à outils de développement d'interface graphique pour Hollywood qui peut être utilisée pour créer des interfaces graphiques utilisant l'Interface Utilisateur Magique. Une autre boîte à outils de développement d'interface graphique pour Hollywood est HGui[9]. Au contraire de RapaGUI et MUI Royale, HGui dessine ses contrôles graphiques elle-même, de sorte que ces derniers apparaissent exactement de la même manière sur toutes les plateformes.

Compilateur[modifier | modifier le code]

Une fonction intéressante du compilateur croisé (en anglais Cross Compiler) livré avec Hollywood est la possibilité d'inclure tous les fichiers externes (dont les polices) dans l'exécutable généré. Il est alors possible de créer des programmes qui auront la forme d'un unique fichier exécutable, qui sera ainsi facilement transportable et distribué. De plus le compilateur de Hollywood peut compiler des scripts sous forme d'applets Hollywood (avec une extension de fichier *.hwa). Ces applets sont plus petits que des programmes Hollywood correspondants mais peuvent être utilisés uniquement sur des systèmes où Hollywood est installé. Il est aussi possible d'exporter des scripts Hollywood en fichier AVI[10].

Environnements de développement[modifier | modifier le code]

Il n'y a pas d'environnement de développement intégré pour la version AmigaOS de Hollywood. Sur ces systèmes, il est possible d'utiliser un IDE tel que Cubic IDE[11] ou Codebench[12] qui permettent le développement en Hollywood grâce à des plugins. Sur Windows, Hollywood est disponible avec son propre IDE[13],[14].

Un programme Hello World[modifier | modifier le code]

Un programme Hello World en Hollywood s'écrit comme ceci :

  Print("Hello World!")
  WaitLeftMouse
  End

Ce code source ouvre une nouvelle fenêtre sur le bureau, affiche le texte « Hello World! » et attend qu'on presse le bouton gauche de la souris avant de quitter. L'ouverture de la fenêtre est faite automatiquement par Hollywood.

Hollywood Designer[modifier | modifier le code]

L'application Hollywood Designer est un logiciel supplémentaire qui permet la création de présentations informatives ou des applications interactives avec Hollywood. Ce logiciel utilise une interface WYSIWYG basée sur le principe des pages. Il est possible de créer autant de pages que désiré en utilisant du texte, des images ou des sons. Hollywood Designer pourra afficher les pages dans l'ordre séquentiel ou un ordre différent. Plusieurs effets de transition sont disponibles. Il est aussi possible de créer des applications qui nécessitent une interaction avec l'utilisateur comme pour des bornes interactives[15].

Tous les projets créés avec Hollywood Designer peuvent être visualisés avec Hollywood et peuvent donc être compilés en exécutables indépendants ou en fichier AVI. Les utilisateurs avancés peuvent aussi importer leur propre code dans un projet. Au travers de tels ajouts de code, il est possible d'accéder à toutes les commandes de Hollywood[16].

Techniquement parlant, Hollywood Designer ne fait que donner à Hollywood des scripts construits à partir des actions de l'utilisateur dans l'interface graphique GUI[17]. Ce processus de générer des scripts et de les exécuter par Hollywood est entièrement transparent pour l'utilisateur. Ce qui fait qu'aucune connaissance de la programmation n'est nécessaire pour utiliser Hollywood Designer[18].

Notes et références[modifier | modifier le code]

  1. « https://forums.hollywood-mal.com/viewtopic.php?f=19&t=3657 »
  2. (en) Fonctionnalités de Hollywood.
  3. Johnson, Magnus: Interview with Andreas Falkenhahn. Total Amiga 21 (2005), pp. 14-15.
  4. Test de Hollywood 1.5 : http://obligement.free.fr/articles/hollywood15.php
  5. (en) Liste des projets utilisant Lua.
  6. Liste des nouveautés de la version 4.7
  7. (en) Preinsack, Anton: Interview with Andreas Falkenhahn. Amiga Future 78 (2009), p. 14.
  8. (en) Christoph, Michael: Hollywood 3 on Windows. Amiga Future 71 (2008), pp. 26-27.
  9. (en) « HGui », sur a-mc.biz (consulté le )
  10. (en) Cornelius, Martin: Hollywood 4.5 or Multimedia is back. Amiga Future 83 (2010), pp. 30-31.
  11. Editeur Cubic IDE : http://devplex.awardspace.biz/
  12. Editeur Codebench : http://codebench.co.uk/
  13. Hollywood plugin for Cubic IDE, http://code.google.com/p/hw4c/
  14. Codebench IDE with Hollywood support, http://codebench.co.uk/
  15. Exemple d'application interactive : (no) http://www.ferrule-media.no (en) Plus d'informations: http://www.amiga.org/forums/printthread.php?t=49890
  16. (en) Robert Williams, « Hollywood 1.9 and Designer », Total Amiga 18 (2004), pp. 18-22.
  17. (en) Christoph Gutjahr, « Hollywood 1.9, Malibu and Hollywood Designer. The Triple Dream Factory », AMIGAplus 147 (2004), pp. 44-47.
  18. (en) Robert Williams, « Hollywood 2.0 The Sequel », Total Amiga 23 (2006), pp. 40-42.
(en) Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé « Hollywood (programming language) » (voir la liste des auteurs).

Liens externes[modifier | modifier le code]